rsc написал тут про поиск багов делением пополам. Сначала про git bisect (который, как я надеюсь, все используют, когда надо), а потом про деление по пространству, не по времени: https://research.swtch.com/bisect
Оказывается, кто-то ещё использует GOPATH вместо модулей
GitHub
cmd/go: breaking change in 1.23rc2 with version constraints in GOPATH mode · Issue #68658 · golang/go
Go version go version go1.23rc2 darwin/amd64 Output of go env in your module/workspace: GO111MODULE='auto' GOARCH='amd64' GOBIN='' GOCACHE='/tmp/.gocache' GOENV='...
How to Go wrong
Новый уникальный блог-пост
GitHub
weak: new package providing weak pointers · Issue #67552 · golang/go
What is a weak pointer? Weak pointers (or weak references, as they are referred to in other languages) allow developers to reference memory without preventing the garbage collector from reclaiming ...
How to Go wrong
Решение сначала добавить телеметрию в команду go, а потом решение сделать её opt-in, а не opt-out, вызвало целую бурю эмоций в сообществе. Ответы на этот твит показывают обе стороны: одни продолжают негодовать из-за всего связанного со злым Гуглом, другие…
https://go.dev/blog/gotelemetry
(и через какое-то время после включения запустите
и полюбуйтесь)
(и через какое-то время после включения запустите
go run golang.org/x/telemetry/cmd/gotelemetry@latest view
и полюбуйтесь)
go.dev
Telemetry in Go 1.23 and beyond - The Go Programming Language
Go 1.23 includes opt-in telemetry for the Go toolchain.
Лучшая четверть организаторов GopherCon Russia (не я) делает камерный четырехдневный Go-кэмп в Черногории. С 13-ого по 16-ое октября будет летний лагерь, Kubernetes операторы, горы, PyTorch в Go, отдых, создание игр на Go. Подробности тут, а наш Go-чат делает разыгрыш скидки в 15%.
How to Go wrong
Ооооох https://github.com/golang/go/issues/67552
Ооооох x2: https://github.com/golang/go/issues/67535
GitHub
runtime: add AddCleanup · Issue #67535 · golang/go
Background Go provides one function for object finalization in the form of runtime.SetFinalizer. Finalizers are notoriously hard to use, and the documentation of runtime.SetFinalizer describes all ...
How to Go wrong
Новый уникальный блог-пост
Кто-то из Google Cloud подвёз свой пример: https://medium.com/google-cloud/interning-in-go-4319ea635002
Medium
Interning in Go
Go 1.23 comes with a new package unique implementing interning, and a blog post about it. Interning is re-using objects of equal value…
Иногда в стандартной библиотеке можно найти любопытные оптимизации, казалось бы, тривиальных вещей. Например, написал я тут
strings.Repeat(" ", n)
в коде форматирования значения. Это ведь просто чтобы цикл не писать руками, да? Но нет: https://github.com/golang/go/blob/69234ded30614a471c35cef5d87b0e0d3c136cd9/src/strings/strings.go#L532-L595Хорошая статья про
unique
и weak pointer’ы: https://victoriametrics.com/blog/go-unique-package-intern-string/VictoriaMetrics
Inside Go's Unique Package: String Interning Simplified
When you’ve got several identical values in your code, you only store one copy. Instead of having several copies of the same thing, they all just point to this one version, which is a lot more efficient. It’s a process often called ‘interning’ in programming…
How to Go wrong
Как вы, наверное, знаете команда Go раз в полгода проводит опросы сообщества и публикует довольно интересные результаты. Но уже какое-то время не было таких же глубоких опросов русскоязычного сообщества. Чаще их делают крупные компании, но часто это замаскированный…
И новый опрос в этом году: https://survey.alchemer.eu/s3/90751981/Go-2024
Результаты прошлого, если вы пропустили: https://devcrowd.ru/go-2023/
Результаты прошлого, если вы пропустили: https://devcrowd.ru/go-2023/
Arenas are dead, long live arenas!
* https://github.com/golang/go/discussions/70257
* https://go.googlesource.com/proposal/+/refs/heads/master/design/70257-memory-regions.md#annotated-examples
(понемногу возвращаюсь из долгого отпуска)
* https://github.com/golang/go/discussions/70257
* https://go.googlesource.com/proposal/+/refs/heads/master/design/70257-memory-regions.md#annotated-examples
(понемногу возвращаюсь из долгого отпуска)
GitHub
memory regions · golang/go · Discussion #70257
I'm starting this discussion to collect early feedback on a draft design for a kind of region-based memory management in Go. There is no prototype yet, only a design and a preliminary evaluatio...
var m map[string]map[int]bool
v := m["foo"][42]
fmt.Println(v)
v, ok := m["foo"][42]
fmt.Println(v, ok)
How to Go wrong
Что выдаст этот код?
(третий вариант должен быть
false, false, false
– отредактировать нельзя)